1. Field of the Invention
This invention relates generally to digital delivery systems, especially for digital video and digital audio data, and more specifically, to a transport stream demultiplexor system including real-time packet remultiplexing function.
2. Discussion of the Prior Art
In an MPEG subsystem that receives content in transport stream format, a transport demultiplexor is used to separate the arriving stream into audio, video, and system data streams. The video data is sent to the video decoder, the audio data to the audio decoder, and the system data to system memory for further processing. In a set-top box application, this allows the program selected by the viewer to be separated and played.
Increasingly, there is a need to be able to store selected program(s) to a fixed storage device such as a hard drive for playback in the set-top box. This requires sending all data associated with the program; audio, video, and system data, to memory for subsequent transfer to the hard drive or other device.
Previous disclosed techniques for storing and playing data based on using the PES, or Packetized Elementary Stream, format which allows for efficient content movement is described commonly-owned, co-pending U.S. patent application Ser. Nos. 09/534643and 09/535069, and in issued U.S. Pat. No. 6,662,329 the contents and disclosure of each of which are incorporated by reference herein.
However, an alternative of interest to system designers is to store the data in its original transport stream format, but filtering out packets that are not related to the program of interest. When doing this, it may be necessary to insert additional packets containing further information into the partial transport stream as it is being stored to allow subsequent playback. In fact, the ability to add information to a stored stream may be generally used to add or modify stream information for a variety of purposes.
Prior art methods for multiplexing “on the fly” require large and complex buffering schemes for the original stream and dedicated processing resources. Another prior art method as described in a data manual to TSB42AA4/TSB42AB4 (ceLynx) Texas Instruments (TI) Data Manual, pp. 4—11-4—13, Jun. 2000, relates to a packet insertion method that implements a fixed size data buffer comprising data that inserts packets in gaps of a transport stream, however, relies on the system microprocessor to write the individual data bytes in the buffer. Thus, the TI device is not capable of inserting multiple continuous packets in the transport stream. The TI system furthermore implements a trial and error approach for inserting packets. That is, the signaling mechanism employed in the TI device detects any gap in the data stream with no guarantee that the detected gap will be able to hold a full packet's worth of data. Thus, if a detected gap in the stream is being filled and there is not enough space for a full packet insertion, then the TI device abandons the insertion as if it never took place.
It would be highly desirable to provide in a digital data transport demultiplexor, a system and method for real-time remultiplexing, i.e., inserting, packets including new content with a filtered transport stream as it is being forwarded to another device on a real-time basis.
It would be further highly desirable to provide in a digital data transport stream demultiplexor, a system and method for inserting in the transport stream multiple continuous packets including new content, in real-time, wherein the packets are retrieved directly from a system memory storage device.
It would additionally be highly desirable to provide a remultiplexing technique for inserting new packets in a transport stream, without requiring large and complex buffering schemes and without using dedicated processing resources, so that remultiplexed program content may be communicated in real-time to a subscriber location for viewing or display.
It would additionally be highly desirable to provide in a real-time remultiplexing device capable of inserting, packets including new content in a filtered transport stream as it is being forwarded to another device on a real-time basis, a mechanism for guaranteeing the presence of available gaps in the filtered stream that are capable of receiving a full length packets.